public class Method {
    //方法定义
    public static boolean isLeapYear(int year) {
        if ((0 == year % 4 && 0 != year % 100) || 0 == year % 400) {
            return true;
        } else {
            return false;
        }
    }

    // 方法的定义
    public static int add(int x, int y) {
        System.out.println("调用方法中 x = " + x + " y = " + y);
        return x + y;
    }

    //【注意事项】
    //1. 修饰符：现阶段直接使用public static 固定搭配
    //2. 返回值类型：如果方法有返回值，返回值类型必须要与返回的实体类型一致，如果没有返回值，必须写成void
    //3. 方法名字：采用小驼峰命名
    //4. 参数列表：如果方法没有参数，()中什么都不写，如果有参数，需指定参数类型，多个参数之间使用逗号隔开
    //5. 方法体：方法内部要执行的语句
    //6. 在java当中，方法必须写在类当中
    //7. 在java当中，方法不能嵌套定义
    //8. 在java当中，没有方法声明一说

    public static int factorial(int n) {
        System.out.println("计算 n 的阶乘中n! = " + n);
        int result = 1;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
    }

    public static int getSum(int N) { // N是形参
        return (1 + N) * N / 2;
    }

    public static void swap(int x, int y) {
        int tmp = x;
        x = y;
        y = tmp;
        System.out.println("swap: x = " + x + " y = " + y);
    }

    public static void swap(int[] arr) {
        int tmp = arr[0];
        arr[0] = arr[1];
        arr[1] = tmp;
    }

}
